﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using Studio7i.Dominio;
using Studio7i.Persistencia.EF.ORM;

namespace Studio7i.Persistencia.EF
{
    public class EFContext : DbContext
    {
        // Constructor para inicializar el contexto con la cadena de conexión
        public EFContext(string cadenaConexion)
            : base(cadenaConexion)
        {
            // Evitar inicializadores de base de datos
            Database.SetInitializer<EFContext>(null);
        }

        // Declaración de las colecciones de objetos de dominio
        public DbSet<Local> Locales { get; set; }
        public DbSet<Sala> Salas { get; set; }
        public DbSet<Instrumento> Instrumentos { get; set; }

        // Método para registrar los mapeos de objetos de dominio
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new LocalMapping());
            modelBuilder.Configurations.Add(new SalaMapping());
            modelBuilder.Configurations.Add(new InstrumentoMapping());
            base.OnModelCreating(modelBuilder);
        }
    }
}